package com.ruicar.afs.cloud.afscase.processor.service;

import com.ruicar.afs.cloud.afscase.processor.vo.LoanWorkflowDataVO;
import com.ruicar.afs.cloud.afscase.processor.vo.NormalReformistVO;
import com.ruicar.afs.cloud.afscase.processor.vo.NormalTaskSubmitVO;
import com.ruicar.afs.cloud.workflow.api.dto.flowprocess.WorkFlowResponse;
import com.ruicar.afs.cloud.workflow.api.dto.flowprocess.request.FLowGiveUpRequest;

/**
 * @author yk.Li
 * @Date 2020/7/17
 * @description
 */
public interface LoanApproveWorkflowService {

    /**
     * 流程发起
     *
     * @param loanWorkflowDataVO
     * @return
     */
    WorkFlowResponse start(LoanWorkflowDataVO loanWorkflowDataVO);

    /**
     * 提交
     *
     * @param submitVO
     * @return
     */
    WorkFlowResponse submit(NormalTaskSubmitVO submitVO);


    /**
     * 改派
     *
     * @param reformistVO
     * @return
     */
    WorkFlowResponse reformist(NormalReformistVO reformistVO);


    /**
     * 结束流程
     *
     * @param fLowGiveUpRequest
     * @return
     */
    WorkFlowResponse flowGiveUp(FLowGiveUpRequest fLowGiveUpRequest);

    /**
     * 异常处理
     * @param exceptionId
     * @return
     */
    void resumeFlow(Long exceptionId);
}
